import numpy as np

def mean_squared_error(y,t):
    '''均方误差损失函数
    params:
    -------------------
        y: 神经网络的输出
        t: 监督数据（标签）
    return:
    -------------------
        表示样本和监督数据的偏离程度
    '''
    return 0.5*np.sum((y-t)**2)

# 神经网络输出：2的概率最高的情况（0.6）
y1 = [0.1, 0.05, 0.6, 0.0, 0.05, 0.1, 0.0, 0.1, 0.0, 0.0]

# 神经网络输出：7的概率最高的情况（0.6）
y2 = [0.1, 0.05, 0.1, 0.0, 0.05, 0.1, 0.0, 0.6, 0.0, 0.0]

# 监督数据：假设2为正确的解
t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]

error1 = mean_squared_error(np.array(y1),np.array(t))
print(error1) # 0.09750000000000003
error2 = mean_squared_error(np.array(y2),np.array(t))
print(error2) # 0.5975